Social Network Media Sharing with Client Library

ABSTRACT

Concepts and technologies are described herein for providing media content sharing. The concepts and technologies disclosed herein can be employed to share media content with a social network, even for content subject to access control mechanisms and/or copyright laws. According to various embodiments disclosed herein, media content can be shared with a social network, or the like. An application running at or in conjunction with a computer can obtain information relating to media content displayed at or accessible to the computer, format the data, and transmit the data to a social networking site or other location in a format appropriate for the site. Contents and technologies for viewing the shared content also are disclosed.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. application Ser.No. 12/704,533 filed Feb. 12, 2010 entitled “Social Network MediaSharing with Client Library,” now U.S. Pat. No. ______, which isexpressly incorporated herein by reference.

BACKGROUND

Social networking sites have become popular with Internet users. Usersof social networking sites often have the ability to update a statusassociated with a user account to inform members of their social networkof a current thought, activity, event, or the like. In general, statusupdates can be directed to user-generated content, links to othercontent, and/or commercial content. For example, a user may update astatus to reflect a thought, a mood, an event, or to share informationsuch as a link, document, or other resource with members of the user'ssocial network. Members of the user's social network are typically ableto access the user-generated content, however, and the links to theother content. In the case of commercial content, a subscription orpurchase may be required for a member of a user's social network to viewor access the content posted by the user. For example, if a user posts alink to an article or other content for which a subscription isrequired, the link to the content may be of little or no interest to amember of the social network without such a subscription.

One common mechanism for circumventing subscription requirementsincludes copying and pasting article contents into a status update.Another common mechanism includes a user sharing his or her accountlogin information associated with a subscription required to view theshared content with members of his or her social network to allow themembers of the social network to access the commercial content. Theseand other approaches may violate not only user agreements associatedwith the shared commercial content, but also may violate copyright laws.

Similarly, a social networking site user may wish to share contentcontrolled by various access control mechanisms, e.g., digital rightsmanagement (DRM) technologies. For example, a user may wish to sharemultimedia content such as music files, videos, and electronic books(“multimedia content”) in addition to articles, web pages, and the like.Multimedia content, as well as other content, may be digitally tracked,managed, and/or controlled to reduce the incidence of unlawful and/orunauthorized use of the content. As users become more aware of copyrightlaws and DRM control mechanisms, their ability and/or willingness toshare multimedia content may be limited.

It is with respect to these and other considerations that the disclosuremade herein is presented.

SUMMARY

Concepts and technologies are described herein for providing mediacontent information sharing. The concepts and technologies disclosedherein can be employed to share media content metadata with members of asocial network. Through an implementation of the concepts andtechnologies presented herein, metadata or other information associatedwith media content (hereinafter collectively referred to as “metadata”)can be shared with a user's social network, for example via a socialnetworking site, a Web log (“blog”), or the like. An application runningat or in conjunction with the user's computer can obtain metadataassociated with the media content being played at the user's computer.The metadata can be transmitted to a social networking site and postedin a format appropriate for the site.

A member of the user's social network can view the shared metadata, andmay be presented with a control to play the media content correspondingto the shared metadata. Upon selecting the option to display or accessthe media content corresponding to the shared metadata, the member'scomputer can be prompted to search a data storage device associated withthe member's computer and/or the member, to determine if the member hasaccess to a copy of the media content corresponding to the sharedmetadata. If the member has access to a copy of the media contentcorresponding to the shared metadata, the member's computer can presentthe content to the member. If the member does not have access to a copyof the media content corresponding to the shared metadata, the member'scomputer can use the metadata to generate and present options for theuser to preview and/or purchase the media content corresponding to theshared metadata, to browse another data storage location for a copy ofthe media content corresponding to the shared metadata, and/or otheroptions.

It should be appreciated that the above-described subject matter may beimplemented as a computer-controlled apparatus, a computer process, acomputing system, or as an article of manufacture such as acomputer-readable storage medium. These and various other features willbe apparent from a reading of the following Detailed Description and areview of the associated drawings.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intendedthat this Summary be used to limit the scope of the claimed subjectmatter. Furthermore, the claimed subject matter is not limited toimplementations that solve any or all disadvantages noted in any part ofthis disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram illustrating an exemplary operatingenvironment for the various embodiments disclosed herein.

FIGS. 2A-2E are user interface diagrams showing aspects of variousexemplary user interfaces provided by a media sharing module disclosedherein in various embodiments.

FIG. 3 is a flow diagram showing aspects of a method for sharing media,according to an exemplary embodiment of the present disclosure.

FIG. 4 is a flow diagram showing aspects of a method for playback ofshared media, according to an exemplary embodiment of the presentdisclosure.

FIG. 5 is a computer architecture diagram illustrating an exemplarycomputer hardware and software architecture for a computing systemcapable of implementing aspects of the embodiments presented herein.

DETAILED DESCRIPTION

The following detailed description is directed to technologies forsharing media. While the subject matter described herein is presented inthe general context of program modules that execute in conjunction withthe execution of an operating system and application programs on acomputer system, those skilled in the art will recognize that otherimplementations may be performed in combination with other types ofprogram modules. Generally, program modules include routines, programs,components, data structures, and other types of structures that performparticular tasks or implement particular abstract data types. Moreover,those skilled in the art will appreciate that the subject matterdescribed herein may be practiced with other computer systemconfigurations, including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like.

In the following detailed description, references are made to theaccompanying drawings that form a part hereof, and which are shown byway of illustration specific embodiments or examples. Referring now tothe drawings, in which like numerals represent like elements throughoutthe several figures, aspects of a computing system, computer-readablestorage medium, and computer-implemented methodology for providing mediasharing will be presented.

Referring now to FIG. 1, aspects of one operating environment 100 forthe various embodiments presented herein will be described. Theoperating environment 100 shown in FIG. 1 includes a computer 102Aconfigured to execute an operating system 104, an application program106, and a media sharing module 108. The computer 102A also isconfigured to store media content, for example, in a media library 110,for use by one or more hardware and/or software components of thecomputer 102A. According to various embodiments, the computer 102Aincludes a standard desktop or laptop personal computer system. Itshould be appreciated, however, that the computer 102A may include othertypes of computing systems, including a server computer, a handheldcomputer, an embedded computer system, a personal digital assistant, amobile telephone, or another type of computing device known to thoseskilled in the art.

As known to those skilled in the art, the operating system 104 is acomputer program for controlling the operation of the computer 102A. Theapplication program 106 is an executable program configured to executeon top of the operating system 104. The application program 106 mayinclude any type of application program including, but not limited to, aword processing program, a spreadsheet program, an electronic mailprogram, a database program, a media playback program, a web browser, asocial networking program, or another type of program. As will bediscussed in greater detail below, the various technologies presentedherein for media sharing may be utilized with virtually any type ofapplication program 106 that receives and performs commands based uponinput provided by a user.

The computer 102A may be connected to one or more networks 112, and mayoperate in conjunction with other computing systems on or incommunication with the network 112 to provide the functionalitydescribed herein. In some embodiments, the computer 102A communicateswith a server 114 that operates on, or in communication with, thenetwork 112. In the illustrated example, the server 114 is a web serveraccessible via the Internet, and provides a social networking service tousers who connect to the server 114. The server 114 includes a socialnetworking application 116 and a public API 118. Users can connect tothe server 114 to control and/or access features of a social networkingservice in several ways. For example, users can access the features viaa social networking site generated by the social networking application116, via the public API 118, via a back end interface with the server114 (not illustrated), or via other connections and/or interfaces.

As illustrated in FIG. 1, one or more additional computers 102B canaccess the server 114 via the network 112. The computer 102B can operatein a manner substantially similar to the computer 102A. As such, theillustrated components 104, 106, 108 of the computer 102B will not bedescribed in additional detail herein. It should be understood, however,that the media content stored in the media library 110 of the computer102B may differ from the media content stored in the media library 110of the computer 102A. In other words, while the function of the medialibraries 110 of respective computers 102A, 102B may be similar, theactual data content of the respective media libraries 110 may differ.

As will be described in greater detail below, a media sharing module 108executes in conjunction with the application program 106 to provide thecomputers 102A, 102B with the functionality disclosed herein forproviding media content metadata sharing. While the media sharingmodules 108 are illustrated in FIG. 1 as distinct entities, it should beappreciated that the functionality disclosed herein as being performedby the media sharing module 108 may be provided by the applicationprogram 106 or another component of the computers 102A, 102B. Accordingto other implementations, the media sharing module 108 may operate inconjunction with the operating system 104 and/or the application program106 to provide sharing of media content metadata with a social network.In this regard, it also should be appreciated that the functionalitydisclosed herein as being performed by the media sharing module 108 alsomay be incorporated directly within the operating system 104 and/or theapplication program 106.

As will be explained in more detail below, concepts and technologies ofthe present disclosure allow a user of a social networking service toshare media content metadata with members of the user's social network.With reference to FIG. 1, the user can access the social networking sitewith the computer 102A. Media content being utilized by the computer102A can be identified, for example using the application program 106and/or the media sharing module 108, and metadata associated with themedia content can be formatted and shared with the server 114 via thesocial networking application 116 and/or the public API 118. The socialnetworking application 116 publishes the shared metadata to an accountassociated with the user of the computer 102B.

A member of the user's social network accesses the user's socialnetworking information by accessing the server 114 with the computer102B. The social networking application 116 configures the sharedmetadata such that the shared metadata is visible to the member of theuser's social network. The member of the user's social network enters acommand to utilize media content corresponding to the shared metadata.Upon receiving the command to utilize the media content, the applicationprogram 106 and/or the media sharing module 108 of the computer 102Bsearches the media library 110 of the computer 102B to determine if acopy of the media content corresponding to the shared metadata exists atthe computer 102B.

If a copy of the media content corresponding to the shared metadataexists at the computer 102B, the computer 102B plays, displays,accesses, or otherwise utilizes, the media content corresponding to theshared metadata. If a copy of the media content corresponding to theshared metadata is not found at the computer 102B, the applicationprogram 106 and/or the media sharing module 108 at the computer 102B areconfigured to generate options for purchasing or otherwise accessing acopy of the media content corresponding to the shared metadata. Theoptions are presented to the member of the user's social network.

It should be appreciated that the operating environment 100 illustratedin FIG. 1, and described briefly above, is merely illustrative, and thatother operating environments for providing the functionality disclosedherein may be utilized. Similarly, it should be understood that metadatamay be shared by a user of the computer 102B, and that shared metadatacan be used by the computer 102A. Because the functionality of thecomputers 102A, 102B can be similar or even identical, this descriptionwill refer to the computers collectively with the reference numeral 102.Additional details regarding the operation of the application program106, the media sharing module 108, and the use of the shared metadata byanother user, computer, and/or other device, will be provided below withrespect to FIGS. 2A-5.

Turning now to FIG. 2A, a user interface diagram showing aspects of auser interface provided by the application program 106 in one embodimentwill be described. In particular, FIG. 2A shows a screen display 200Agenerated by the application program 106 according to one particularimplementation presented herein. In this implementation, the applicationprogram 106 includes an application program for interacting with asocial networking website. In some embodiments, the application program106 is a web browser accessing a social networking site.

In some embodiments, the application program 106 includes a stand-aloneout-of-browser application that is configured to interface with the anAPI exposed by a social networking site, for example, the public API 118exposed by the server 114. As is generally known, stand aloneapplications can be generated using various developer tools and/orsoftware packages including, but not limited to, MICROSOFT SILVERLIGHT,ADOBE FLASH, ADOBE AIR, and/or other platforms and/or tools. Thus, itshould be appreciated that the user interface diagrams illustrated inFIGS. 2A-2E are merely illustrative, and that the embodiments presentedherein may be utilized with many different types of user interfacesprovided by many different types of application programs 106.

The screen display 200A shown in FIG. 2A includes various menu items 202for navigating and/or modifying an account associated with the socialnetworking service or site. The illustrated menu items 202 include, butare not limited to, UI controls to update a user's status, change aview, navigate to various pages, logout of a user account, view events,view a messaging service provided by the social networking service, viewlinks, view photos, view videos, access chatting services, othercontrols, and the like. It should be understood that the illustratedmenu items 202 are merely illustrative, and that additional and/oralternative menu items are both possible and contemplated.

In the illustrated embodiment, the user has selected a UI control toupdate a status. Thus, the UI control corresponding to this option isillustrated as highlighted, and an input UI 204 is being displayed. Theinput UI 204, which may be displayed when the application isinitialized, when a social networking site is loaded, and/or whentriggered or accessed by selecting one or more of the menu items 202, ismerely illustrative of a contemplated embodiment of the presentdisclosure. As such, the format and controls illustrated and describedherein should not be construed as being limiting in any way. Theillustrated input UI 204 includes a graphic 206, which may include aphoto or graphic designated by a user associated with a socialnetworking account to identify the user. In the illustrated embodiment,the input UI 204 includes an input field 208 and an input option menu210. The input field 208 includes a text box for inputting alphanumericcharacters to display a message.

The input option menu 210 includes a UI control 212 that, when selected,causes the computer to post a link, for example, a uniform resourcelocator (“URL”). It should be understood that the functions provided bythe UI control 212 also may be used to associate a URL with a messageinput at the input field 208. The input option menu 210 further includesa UI control 214 that, when selected, causes the computer to post aphoto, or to associate a photo with a message input at the input field208. Additionally, the input option menu 210 includes a UI control 216that, when selected, causes the computer to share metadata associatedwith media content, for example a music file. It should be understoodthat the illustrated input option menu 210, and the UI controls 212,214, 216 illustrated and described in relation thereto, are merelyexemplary and should not be construed as being limiting in any way.Additionally, it should be understood that the functions provided by theUI control 216 may be used to post metadata for a variety of mediacontent, and are not limited to music or other audio content. The inputUI 204 also includes a UI control 218 that, when selected, causes thecomputer to share information entered into the input UI 204. Additionaland/or alternative fields, UI controls, and menu items are possible andare contemplated.

The application program 106 may receive many different types ofcommands. For example, the application program 106 may receive commandsas mouse clicks and/or key entries on or at the menu items 202, mouseclicks or key entries on or at the UI controls 212, 214, 216, 218, textentry in the input field 208, and/or through other mechanisms, such asvoice commands and/or dedicated keyboard commands. Therefore, asutilized herein, the term “command” encompasses any request to performfunctionality that is received from a user.

As will be discussed in greater detail below, the media sharing module108 operates in conjunction with the application program 106 to performvarious functionality to share media content metadata. For example, theapplication program 106 and/or the media sharing module 108 cancollectively or individually obtain metadata and/or other informationassociated with media content and share the metadata with a socialnetworking site. Additionally, the application program 106 and/or themedia sharing module 108 can collectively or individually access theshared metadata to identify media content corresponding to the sharedmetadata, to query or interrogate a data storage device of a computer102 at which the application program 106 and/or the media sharing module108 are executed to determine if the computer 102 has authorization toview, display, playback, perform, or otherwise access (hereinaftercollectively referred to as “utilize”) a copy of the media contentcorresponding to the shared metadata, to provide playback of the mediacontent corresponding to the shared metadata for authorized users,and/or to provide users with options for obtaining a copy of or accessto the media content corresponding to the shared metadata. Additionaldetails regarding the operation of the application program 106 and themedia sharing module 108, as well as illustrative user interfacesprovided thereby, are illustrated and described below with additionalreference to FIGS. 2B-5.

Referring now to FIG. 2B, a user interface diagram showing aspects of auser interface provided by the application program 106 and the mediasharing module 108 in one embodiment will be described. In particular,FIG. 2B shows another screen display 200B generated by the applicationprogram 106. The screen display 200B illustrated in FIG. 2B may includea modification of the input UI 204 of FIG. 2A, as modified in responseto a user selecting the UI control 216 to share media content metadata.As illustrated in FIG. 2B, the input UI 204 window illustrated in FIG.2A has been expanded and now includes a media content sharing UI 220.The media content sharing UI 220 further includes media information 222.

The media information 222 can be reviewed by the user prior to sharingthe media information 222 with the networking site. As is explainedherein, the media information 222 can include and/or can be based uponmetadata associated with media content being utilized at the computer102. For example, the media information 222 can be generated by theapplication program 106 and/or the media sharing module 108 in responseto a user entering a command to share media content metadata with asocial networking site. In response to the command, the applicationprogram 106 and/or the media sharing module 108 obtains metadataassociated with media content being utilized at the computer 102,determines which metadata to present to the social networking site, andformats the metadata in the proper format. For example, the metadata canbe formatted as illustrated by the media information 222.

In some embodiments, the functionality of the application program 106 isprovided by a web browser, and that the functionality of the mediasharing module 108 is provided by a media player that is accessible by aweb application that generates a “call” to a local resource such as, forexample, a media player in use at a computer 102 or another device. Insome embodiments, social networking site interaction is provided by astand-alone out-of-browser application (“client”) that interfaces with amedia player running at a computer 102 or another device. As such, thefunctionality of the application program 106 and the media sharingmodule 108 can be provided by the stand-alone application, by a mediaplayer and the stand alone application, respectively, and/or by thestand alone application and the media player, respectively. In yet otherembodiments, a media player application performs the functionality ofboth the application program 106 and the media sharing module 108. Insuch embodiments, the media player is configured to obtain media contentmetadata and to upload the metadata to a social networking site via apublic API exposed by a website associated with the social networkingservice. Thus, the functionality described herein can be applied tovarious combinations of applications and services, without departingfrom the scope of the present disclosure.

Regardless of the configuration used to provide the functionality of theapplication program 106 and/or the media sharing module 108, it shouldbe understood that an application playing or otherwise providing accessto the media content may be queried for media information by theapplication program 106 and/or the media sharing module 108. In responseto such a query, the application playing or otherwise providing accessto media content can identify the media content being utilized and canformat metadata identifying the media content. The metadata can beformatted such that the media content can be accurately determined by anapplication accessing the metadata, as will be explained below.

Returning to the exemplary screen display 200B, a user has selected acontrol to share media content metadata with a social network, forexample, by selecting the UI control 216 described with reference toFIG. 2A. As such, in the illustrated example, the media information 222includes data relating to a song title such as, for example, an artistwho performs the shared music file, an album that includes the sharedmusic file, graphics and/or other art 224 (“album art”) associated withthe shared music file, time duration data associated with the sharedmusic file, and/or any other information.

As mentioned above, the media content for which metadata is obtained andshared can include music files, video files, electronic books, articles,web pages, and the like, and other content. Thus, it should beunderstood that if the media content includes a video, the mediainformation 222 can include, for example, metadata indicating actorsappearing in the video, if any, a location associated with the video,time duration data associated with the video, a codec used to encode ordecode the video, a rating associated with the video, copyrightinformation associated with the video, combinations thereof, and thelike. Similarly, if the shared content includes a document and/or otherpublication, the media information 222 can include a number of pages, anauthor, a subject, other categorization information, copyrightinformation, source information, combinations thereof, and the like. Itshould be understood that these examples are merely illustrative ofvarious media that can be shared and should not be construed as beinglimiting in any way.

As illustrated in FIG. 2B, the input UI 204 includes a heading 226. Itshould be appreciated that the heading 226 can indicate a functionselected by a user, for example, from the input UI 204 as describedabove with reference to FIG. 2A. The heading 226 can be a simple headingidentifying a function provided by the input UI 204, and/or can haveadditional or alternative functionality associated therewith. In onecontemplated embodiment, the heading 226 can be selected by a user toprovide functionality similar to that provided by the UI control 216described above. Thus, a user updating his or her status via the inputUI 204 can select the heading 226 to refresh and/or update the mediacontent metadata.

It will be appreciated that including the ability to refresh the mediacontent metadata may be used by a user, for example, in a situation inwhich a user decides to share media content metadata corresponding tofirst media content, selects a control to share the metadata, but beginsplaying or utilizing different media content before completing an actionto share the metadata corresponding to the first media content. Forexample, a user may be listening to an album and decide to sharemetadata corresponding to the song with his or her social network. Priorto completing the sharing process, however, a song playing when themedia information 222 was retrieved ends. Thus, the media information222 may now be outdated and would not be accurate if posted to a socialnetworking site. Similarly, if the user began playback of differentmedia after the media information 222 was retrieved, as well as in othersituations, the user can click on the heading 226 to refresh the mediainformation 222 prior to updating his or her status.

Although not illustrated in FIG. 2B, it should be understood that a usercan be given a control to select or de-select the sharing of one or moremetadata identifying the media content. As such, a check box or other UIcontrol can be provided adjacent some or all identifying data to allow auser to select whether to share that particular data. In the illustratedexample, check boxes or other UI controls can be provided adjacent the“title,” the “artist,” the “album,” and/or the album art 224, therebyallowing a user to share some or all of the media information 222. Thus,a user may share the specific track of the album, the album, the artist,other information, and/or a combination thereof, without sharing all ofthe media information 222. It will be appreciated that a user may decideto share only an album name so that the status will be valid for alonger period of time than would be the case if a particular track isshared. These examples are merely illustrative, as mentioned above.

Turning now to FIG. 2C, a user interface diagram showing aspects of auser interface provided by the application program 106 in one embodimentwill be described. In particular, FIG. 2C shows another screen display200C generated by the application program 106 according to oneparticular implementation presented herein. The illustrated screendisplay 200C includes a news feed UI 230 that is populated withinformation posted by members of a user's social network. The news feedUI 230 includes a first news item 232 posted by a first member of theuser's social network. The first news item 232 can include, for example,a status update 234 submitted by a first user, a graphic 236 associatedwith the first user, information relating to the status update 238, forexample, a time in which the status was updated, a control to comment orvote on the status update, and/or other controls. It should beunderstood that the illustrated news item 232 is exemplary only and isprovided solely to clarify concepts of the present disclosure. The newsfeed UI 230 further includes a second news item 240 posted by a secondmember of the user's social network. It should be understood that thesecond news item 240, can be generated via the user interfaceillustrated in FIGS. 2A-2B.

As illustrated in FIG. 2C, the second news item 240 includes a statusupdate relating to a second user. In the illustrated example, the statusupdate includes the media information 222 described above, and relatesto media content information shared by the user associated with thesecond news item 240. Thus, the media information 222 can include, forexample, time duration information, media title information, albuminformation, sample rate information, file format information, otherinformation relating to the media, combinations thereof, and the like.The second news item 240 further includes the album art 224 or othermedia art associated with the shared media. Additionally, as illustratedin FIG. 2C, the second news item 240 further can include a UI control244 that, when selected, causes a computer to play media contentcorresponding to the shared metadata. As described with respect to thefirst news item 232, the second news item 240 can include informationrelating to the status update 246, which can include a time at which thestatus update was submitted, controls to comment or vote on the statusupdate, and/or other controls.

It will thus be appreciated that the media content metadata shared viathe application program 106 and/or the media sharing module 108 can beviewed by members of a user's social network. Additionally, a member ofa user's social network can have the ability to playback or otherwiseaccess the media content corresponding to the shared metadata.

As will be explained in more detail below, a member of a user's socialnetwork can enter a command to playback or otherwise access the mediacontent corresponding to the metadata shared by the user. In response toreceiving the command to playback or access the media contentcorresponding to the shared metadata, the application program 106 and/orthe media sharing module 108 are configured to determine if the memberof the user's social network has access to a copy of the media contentcorresponding to the shared metadata.

As explained above, the media information 222 can be generated byquerying a media playback application to obtain metadata describingmedia content being utilized at or in proximity to the computer 102.This metadata can be shared with and/or submitted to a social networkingsite or service, for example, as or in conjunction with a status updateas described above with reference to FIG. 2B. The shared metadata can bestored in a manner that makes the shared metadata accessible to theapplication program 106 and/or the media sharing module 108 associatedwith a member of the user's operating at a computer of a partyattempting to playback or otherwise utilize the media contentcorresponding to the shared metadata.

The application program 106 and/or the media sharing module 108 isconfigured to use the metadata to identify the media content, and toquery a data storage device associated with the device attempting toplayback or otherwise access the media content corresponding to themetadata to determine if a copy of the media content is accessible.Thus, the application program 106 and/or the media sharing module 108query and/or interrogate a media library or a media playback device todetermine if a copy exists. If a copy of the media content correspondingto the metadata is accessible by the device, the application program 106and/or the media sharing module 108 can generate a user interface forutilizing the media content corresponding to the shared metadata. Anexemplary user interface for utilizing media content is illustrated inFIG. 2D.

Turning now to FIG. 2D, a user interface diagram showing aspects of theuser interface provided by the application program 106 and the mediasharing module 108 in another embodiment will be described. Inparticular, FIG. 2D shows another screen display 200D generated by theapplication program 106. As illustrated in FIG. 2D, a media content UI250 is illustrated, according to an exemplary embodiment of the presentdisclosure. The media content UI 250 includes a UI control 252 that,when selected, causes a computer to close the media content UI 250, avolume slider UI control 254 that, when manipulated, causes a computerto adjust the playback volume of the media content, a time slider and/ordisplay 256 to display time information associated with the mediacontent and playback of the media content, and playback controls 258that can be manipulated to control the playback or display of the mediacontent. The functions of these controls are generally known and willnot be described in detail herein. Furthermore, it should be understoodthat the illustrated controls are merely exemplary, and that the mediacontent UI 250 can include fewer, additional, and/or alternativecontrols.

The screen display 200D illustrated in FIG. 2D can be generated inresponse to a user selecting the UI control 244 discussed above withrespect to FIG. 2C. Prior to utilizing the media content correspondingto the shared metadata and/or generating the media content UI 250illustrated in FIG. 2D, the computer 102, or more particularly theapplication program 106 and/or the media sharing module 108, can accessa data storage device associated with the computer 102 to determine ifthe computer 102 has a copy of the media content corresponding to theshared metadata.

If the computer does not have access to a copy of the media contentcorresponding to the shared metadata, the application program 106 and/orthe media sharing module 108 can be configured to generate one or morepurchase or access options for presentation to a user via a userinterface. In some embodiments, for example, the application program 106and/or the media sharing module 108 can generate one or more links todownload or stream a copy of the media content corresponding to theshared metadata. For example, the application program 106 and/or themedia sharing module 108 can generate a link to purchase a copy of themedia content corresponding to the shared metadata via MICROSOFT ZUNE,APPLE ITUNES, AMAZON MP3, and/or another media provider. Additionally,or alternatively, the application program 106 and/or the media sharingmodule 108 can generate a link to preview the media contentcorresponding to the shared metadata, to stream the media contentcorresponding to the shared metadata from a free location such asYOUTUBE, GOOGLE video, YAHOO! audio, or the like, and/or otherlocations. Additionally, or alternatively, the application program 106and/or the media sharing module 108 can prompt a user to browse anadditional and/or alternative data storage location to search for a copyof the media content corresponding to the shared metadata. Such controlscan be formatted and presented to a user via a user interface such asthat illustrated in FIG. 2E.

Referring now to FIG. 2E, a user interface diagram showing aspects ofthe user interface provided by the application program 106 and the mediasharing module 108 in yet another embodiment is described. Inparticular, FIG. 2E shows yet another screen display 200E generated bythe application program 106. The screen display 200E includes a mediacontent indication window 260, which may be generated in response to aselection of a UI control such as the UI control 244 discussed abovewith reference to FIGS. 2C and 2D. The media content indication window260 may be generated if a user does not have a copy of the media contentcorresponding to the shared metadata in a local library or libraryaccessible to the computer 102, as explained above.

The illustrated media content indication window 260 includes a message262 indicating that the queried or interrogated library does not includea copy of the media content corresponding to the shared metadata. Themedia content indication window 260 also includes media contentinformation 264, which can be similar to the media information 222illustrated in FIG. 2B, as well as album art 224 associated with themedia content. The media content indication window 260 also can includeoptions to obtain rights to view, play, display, stream, preview, and/orotherwise access or utilize the media content corresponding to theshared metadata. For example, the media content indication window 260can include a UI control 266 that, when selected, causes a computer topurchase a copy of, or access to, media content corresponding to theshared metadata, a UI control 268 that, when selected, causes a computerto preview media content corresponding to the shared metadata, a UIcontrol 270 that, when selected, causes a computer to browse a datastorage device of, associated with, and/or accessible to, the computer102 to locate a copy of the media content corresponding to the sharedmetadata, a UI control 272 that, when selected, causes a computer toexit the media content indication window 260, other UI controls (notillustrated), and the like.

Turning now to FIG. 3, a method 300 for sharing media content metadatawill be described in detail. It should be understood that the operationsof the method 300 are not necessarily presented in any particular orderand that performance of some or all of the operations in an alternativeorder(s) is possible and is contemplated. The operations have beenpresented in the demonstrated order for ease of description andillustration. Operations may be added, omitted, and/or performedsimultaneously, without departing from the scope of the appended claims.

It also should be understood that the illustrated method 300 can beended at any time and need not be performed in its entirety. Some or alloperations of the method 300, and/or substantially equivalentoperations, can be performed by execution of computer-readableinstructions included on a computer-storage media, as defined above. Theterm “computer-readable instructions,” and variants thereof, as used inthe description and claims, is used expansively herein to includeroutines, applications, application modules, program modules, programs,components, data structures, algorithms, and the like. Computer-readableinstructions can be implemented on various system configurations,including single-processor or multiprocessor systems, minicomputers,mainframe computers, personal computers, hand-held computing devices,microprocessor-based, programmable consumer electronics, combinationsthereof, and the like.

Thus, it should be appreciated that the logical operations describedherein are implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance and other requirements of the computing system.Accordingly, the logical operations described herein are referred tovariously as states operations, structural devices, acts, or modules.These operations, structural devices, acts, and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof. For purposes of illustrating and describingthe concepts of the present disclosure, the method 300 is described asbeing performed by the computer 102, though it will be understood thatthe computer 102 can provide the functionality described herein byexecution of the application program 106 and/or the media sharing module108. Thus, the described embodiment is merely exemplary and should notbe viewed as being limiting in any way.

The method 300 begins at operation 302, wherein a computer 102 receivesa command to share media content metadata. As illustrated and describedabove, the command to share media content metadata can be received inseveral different ways. For example, a user can enter a command to sharemedia content metadata by clicking with a mouse on a menu item such asthe UI control 216 illustrated in FIG. 2A. Additionally, oralternatively, a user may click on a UI control of a social networkingsite as displayed by a web browser, click on a UI control provided by amedia playback application, enter a key sequence entered into an inputfield or prompt, enter a hot key or keystroke sequence, navigate to oraccess an address such as a particular URL, combinations thereof, andthe like.

The method 300 proceeds to operation 304, wherein the computer 102retrieves media information associated with the media content. Asexplained above, the application program 106, the media sharing module108, and/or a media playback application can access metadata and/orother information associated with media content being played orotherwise accessed at the computer 102. In some embodiments, themetadata is retrieved by the application program 106, the media sharingmodule 108, and/or a media playback application and is submitted to aweb service to identify the media content. The web service can respondto the application program 106, the media sharing module 108, and/or amedia playback application with identifying information that can be usedby another device or application to accurately identify the mediacontent corresponding to the shared metadata.

The method 300 proceeds to operation 306, wherein the metadata isformatted into a form for sharing with the social networking service.For example, the metadata may be modified to place the data in aspecific order to standardize presentation to accessing devices.Additionally, or alternatively, the metadata can be formatted into aspecific language. It should be understood that the language, order,and/or format of the metadata can be formatted in accordance with one ormore specifications set forth by a particular social networking serviceand/or site, and can vary from time to time. Thus, operation 306 caninclude any steps necessary to verify a desired format, language, and/ororder, and to alter the metadata in accordance with the format,language, and/or order desired by a particular social networkingservice.

The method 300 proceeds to operation 308, wherein the formatted mediainformation is posted to a desired program or device. For example, theapplication program 106, the media sharing module 108, and/or a mediaplayback application can pass the formatted metadata to a web browserfor posting to a social networking site. More particularly, theapplication program 106, the media sharing module 108, and/or the mediaplayback application can pass the formatted metadata to a server thathosts a social networking site associated with the user's socialnetwork. Alternatively, the application program 106, the media sharingmodule 108, and/or a media playback application can transmit theformatted information directly to a social network service or site via apublic API exposed by the social networking service and/or socialnetworking site, as explained above. The method 300 ends.

FIG. 4 schematically illustrates a method 400 for displaying sharedmedia, according to an exemplary embodiment of the present disclosure.It should be understood that the operations of the method 400 are notnecessarily presented in any particular order and that performance ofsome or all of the operations in an alternative order(s) is possible andis contemplated. The operations have been presented in the demonstratedorder for ease of description and illustration. Operations can be added,omitted and/or performed simultaneously, without departing from thescope of the appended claims. It also should be understood that theillustrated method 400 can be ended at any time and need not beperformed in its entirety. Some or all operations of the method 400,and/or substantially equivalent operations, can be performed byexecution of computer-readable instructions included on acomputer-storage media. As explained above with reference to the method300 illustrated in FIG. 3, the method 400 illustrated in FIG. 4 isdescribed as being performed by a computer 102, though it will beunderstood that the computer 102 can provide the functionality describedherein by execution of the application program 106 and/or the mediasharing module 108. Thus, the described embodiment is merely exemplaryand should not be viewed as being limiting in any way.

The method 400 begins and proceeds to operation 402, wherein a commandto utilize media content corresponding to shared metadata is received.As illustrated and described above, the command to utilize the mediacontent corresponding to the shared metadata can be received in severalways. For example, a user can enter a command to utilize media contentcorresponding to the shared metadata by clicking with a mouse on a UIcontrol such as the UI control 244 illustrated in FIG. 2C. Additionally,or alternatively, a user may enter a command to utilize the mediacontent corresponding to the shared metadata by entering a hotkey orkeystroke sequence, and the like.

Upon receiving a command to utilize the media content corresponding tothe shared metadata, the method 400 proceeds to operation 404, whereinmetadata associated with the media content is retrieved. As explainedabove, the metadata associated with the media content can be shared witha social networking site by a user. This metadata can be embedded in aweb site in a manner such that the metadata is accessible to thecomputer 102, the application program 106, and/or the media sharingmodule 108. Thus, the operation 404 can include communicating with asocial networking site or service to obtain the metadata.

The method 400 proceeds to operation 406, wherein the computer 102, theapplication program 106, and/or the media sharing module 108 queries adata storage device to determine if the computer has access to a copy ofthe media content corresponding to the shared metadata. In someembodiments, the data storage device includes a media library associatedwith the computer 102. Thus, the operation 406 can include interrogatingor querying the media library to determine if the media contentcorresponding to the shared metadata, and/or a copy thereof, is locallyaccessible to the computer 102. It should be understood that thecomputer 102, the application program 106, and/or the media sharingmodule 108 can query a media playback application, and the mediaplayback application can query the media library and/or access a webservice to verify legal rights to the media content corresponding to theshared metadata, if desired.

The method 400 proceeds to operation 408 wherein the computer 102determines if a copy of the media content corresponding to the sharedmetadata was located in operation 406. If a copy of the media contentcorresponding to the shared metadata was located, the method 400proceeds to operation 410, wherein the copy of the media content isutilized for a user of the computer 102. An exemplary embodiment ofoperation 410 is illustrated in FIG. 2D and described above withreference thereto. It should be understood that if the computer 102, theapplication program 106, and/or the media sharing module 108 determinesthat a copy of the media content corresponding to the shared metadata isaccessible, the operation 410 can include launching a stand-alone mediaplayback application, web browser, digital reader, or another mediacontent application for playback, access, or other utilization of themedia content corresponding to the shared metadata.

Returning briefly to operation 408, if a copy of the media contentcorresponding to the shared metadata is not located, the method 400proceeds to operation 412, wherein the application program 106, themedia sharing module 108, and/or a media playback device generates mediacontent access options for presentation to the user. For example, theapplication program 106, the media sharing module 108, and/or the mediaplayback application can display to the user a control to purchase themedia content corresponding to the shared metadata, a control to previewthe media content corresponding to the shared metadata, a control tobrowse a local and/or remote data storage device to locate a copy of themedia content corresponding to the shared metadata, a control to exit orcancel a request to play the media content corresponding to the sharedmetadata, other controls, and the like, as illustrated and describedabove with reference to the screen display 200E illustrated in FIG. 2E.As mentioned above, additional and/or alternative controls can begenerated in association with the operation 412 described herein.

The method 400 proceeds to operation 414, wherein the options generatedin the operation 412 can be presented to a user for selection. Anexemplary embodiment of the functionality of operation 414 isillustrated and described above with reference to the screen display200E illustrated in FIG. 2E, though additional and/or alternativefunctionality is possible and is contemplated. The method 400 ends.

Although not illustrated in FIG. 4, it should be understood that a usercan select a presented option, and that additional functionality can beprovided based upon the choice of the user. For example if the userselects a control to purchase the media content corresponding to theshared metadata, the computer 102 can launch a program to access apurchase mechanism or application.

FIG. 5 illustrates an exemplary computer architecture 500 for a computer102 capable of executing the software components described herein forproviding media content metadata sharing as described above. Thecomputer architecture 500 illustrated in FIG. 5 illustrates aconventional desktop, laptop, and/or server computer, and may beutilized to execute any aspects of the software components presentedherein.

The computer architecture 500 shown in FIG. 5 includes a centralprocessing unit 502 (“CPU”), a system memory 508, including a randomaccess memory 514 (“RAM”) and a read-only memory (“ROM”) 516, and asystem bus 504 that couples the memory to the CPU 502. A basicinput/output system containing the basic routines that help to transferinformation between elements within the computer architecture 500, suchas during startup, is stored in the ROM 516. The computer architecture500 further includes a mass storage device 510 for storing an operatingsystem 104, application programs, and other program modules, which aredescribed in greater detail herein.

The mass storage device 510 is connected to the CPU 502 through a massstorage controller (not shown) connected to the bus 504. The massstorage device 510 and its associated computer-readable media providenon-volatile storage for the computer architecture 500. Although thedescription of computer-readable media contained herein refers to a massstorage device, such as a hard disk or CD-ROM drive, it should beappreciated by those skilled in the art that computer-readable media canbe any available computer storage media that can be accessed by thecomputer architecture 500.

By way of example, and not limitation, computer-readable storage mediamay include volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer-readable instructions, data structures, program modules orother data. For example, computer-readable media includes, but is notlimited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid statememory technology, CD-ROM, digital versatile disks (“DVD”), HD-DVD,BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the desired information and which canbe accessed by the computer architecture 500.

According to various embodiments, the computer architecture 500 mayoperate in a networked environment using logical connections to remotecomputers through a network such as the network 112. The computerarchitecture 500 may connect to the network 112 through a networkinterface unit 506 connected to the bus 504. It should be appreciatedthat the network interface unit 506 also may be utilized to connect toother types of networks and remote computer systems. The computerarchitecture 500 also may include an input/output controller 512 forreceiving and processing input from a number of other devices, includinga keyboard, mouse, or electronic stylus (not shown in FIG. 5).Similarly, an input/output controller may provide output to a displayscreen, a printer, or other type of output device (also not shown inFIG. 5).

As mentioned briefly above, a number of program modules and data filesmay be stored in the mass storage device 510 and RAM 514 of the computerarchitecture 500, including an operating system 104 suitable forcontrolling the operation of a networked desktop, laptop, or servercomputer. The mass storage device 510 and RAM 514 also may store one ormore program modules. In particular, the mass storage device 510 and theRAM 514 may store the media sharing module 108 and the applicationprogram 106, each of which was described in detail above with respect toFIGS. 1-4. The mass storage device 510 and the RAM 514 also may storeother types of program modules and data.

It should be appreciated that the software components described hereinmay, when loaded into the CPU 502 and executed, transform the CPU 502and the overall computer architecture 500 from a general-purposecomputing system into a special-purpose computing system customized tofacilitate the functionality presented herein. The CPU 502 may beconstructed from any number of transistors or other discrete circuitelements, which may individually or collectively assume any number ofstates. More specifically, the CPU 502 may operate as a finite-statemachine, in response to executable instructions contained within thesoftware modules disclosed herein. These computer-executableinstructions may transform the CPU 502 by specifying how the CPU 502transitions between states, thereby transforming the transistors orother discrete hardware elements constituting the CPU 502.

Encoding the software modules presented herein also may transform thephysical structure of the computer-readable media presented herein. Thespecific transformation of physical structure may depend on variousfactors, in different implementations of this description. Examples ofsuch factors may include, but are not limited to, the technology used toimplement the computer-readable media, whether the computer-readablemedia is characterized as primary or secondary storage, and the like.For example, if the computer-readable media is implemented assemiconductor-based memory, the software disclosed herein may be encodedon the computer-readable media by transforming the physical state of thesemiconductor memory. For example, the software may transform the stateof transistors, capacitors, or other discrete circuit elementsconstituting the semiconductor memory. The software also may transformthe physical state of such components in order to store data thereupon.

As another example, the computer-readable media disclosed herein may beimplemented using magnetic or optical technology. In suchimplementations, the software presented herein may transform thephysical state of magnetic or optical media, when the software isencoded therein. These transformations may include altering the magneticcharacteristics of particular locations within given magnetic media.These transformations also may include altering the physical features orcharacteristics of particular locations within given optical media, tochange the optical characteristics of those locations. Othertransformations of physical media are possible without departing fromthe scope and spirit of the present description, with the foregoingexamples provided only to facilitate this discussion.

In light of the above, it should be appreciated that many types ofphysical transformations take place in the computer architecture 500 inorder to store and execute the software components presented herein. Italso should be appreciated that the computer architecture 500 mayinclude other types of computing devices, including hand-held computers,embedded computer systems, personal digital assistants, and other typesof computing devices known to those skilled in the art. It is alsocontemplated that the computer architecture 500 may not include all ofthe components shown in FIG. 5, may include other components that arenot explicitly shown in FIG. 5, or may utilize an architecturecompletely different than that shown in FIG. 5.

The word “utilize,” as used in the claims, is used broadly to refer todisplaying, playing, performing, or otherwise accessing media content.Thus, while the claims refer to “utilizing” media content, it should beunderstood that the claims include all embodiments disclosed herein. Assuch, “utilizing” media content includes playback of audio content,displaying documents, playing video, and other embodiments describedherein. Similarly, the word “obtain” as used in the claims refers totransmitting payment for a license, downloading data, purchasingcontent, accessing content, sampling or previewing content, and/or thelike, and is not used to narrowly refer only to retrieving or receivingmedia content.

Although not described in detail above, it should be understood that amicrophone or network connection can be accessed by the computer 102,the application program 106, and/or the media sharing module 108 toobtain media information associated with media being accessed or playedby a device other than the computer 102 or an application being run bythe computer 102. For example, a microphone of the computer 102 can beaccessed by the computer 102, the application program 106, and/or themedia sharing module 108 to obtain an audio signal. If the audio signalincludes media such as, for example, music, the audio signal can beevaluated to identify the music or other media content.

For example, the audio signal can be transmitted to a web service suchas, for example, SHAZZAM, or the like, for identification. The webservice can return metadata to the computer 102, or an application ormodule thereof, and can be used to identify the media content.Similarly, the computer 102, the application program 106, and/or themedia sharing module 108 can access a media playback application runningat a network computer, and can obtain metadata or information associatedwith media content being utilized or otherwise accessed by the networkcomputer in a manner substantially similar to that described above withreference to FIG. 2B. For purposes of this disclosure, a network devicecan include a device in wired and/or wireless communication with thecomputer 102.

Based on the foregoing, it should be appreciated that technologies forproviding media sharing have been disclosed herein. Although the subjectmatter presented herein has been described in language specific tocomputer structural features, methodological and transformative acts,specific computing machinery, and computer readable media, it is to beunderstood that the invention defined in the appended claims is notnecessarily limited to the specific features, acts, or media describedherein. Rather, the specific features, acts and mediums are disclosed asexample forms of implementing the claims.

The subject matter described above is provided by way of illustrationonly and should not be construed as limiting. Various modifications andchanges may be made to the subject matter described herein withoutfollowing the example embodiments and applications illustrated anddescribed, and without departing from the true spirit and scope of thepresent invention, which is set forth in the following claims.

We claim:
 1. A system for accessing media content shared with a socialnetwork, the computer-implemented system comprising: a processor; and acomputer-readable storage medium having instructions stored thereuponwhich, when executed by the processor, cause the processor to receive arequest from a first user of the social network to access shared mediacontent associated with a second user of the social network, in responseto receiving the request, obtain information identifying the sharedmedia content and initiate a search for determining whether the firstuser has access to an authorized copy of the shared media content, thesearch being based upon the information identifying the shared mediacontent, cause one or more user interface controls to be provided forutilizing the shared media content in response to determining that thefirst user has access to the authorized copy of the shared mediacontent, and cause one or more user interface controls to be providedfor obtaining the authorized copy of the shared media content inresponse to determining the first user does not have access to theauthorized copy of the shared media content.
 2. The system of claim 1,wherein obtaining the information comprises retrieving metadataassociated with the shared media content.
 3. The system of claim 1,wherein initiating the search further comprises: generating a query forsearching a data storage device local to a computer associated with thefirst user; and submitting the query to an application to determine ifthe data storage device stores the authorized copy of the shared mediacontent.
 4. The system of claim 3, wherein generating the querycomprises generating a query for searching a media library associatedwith a playback application, the media library being stored at the datastorage device local to the computer associated with the first user. 5.The system of claim 1, wherein the processor is further configured tocause a media playback application to utilize the shared media content.6. The system of claim 1, wherein causing the one or more user interfacecontrols to obtain the authorized copy of the shared media content to beprovided comprises: causing a user interface for purchasing theauthorized copy of the shared media content to be displayed; receiving arequest through the user interface to initiate a purchase of theauthorized copy of the shared media content; and in response toreceiving the request, causing an application to complete the purchaseof the authorized copy of the shared media content.
 7. The computerimplemented system of claim 1, wherein causing the one or more userinterface controls to obtain the authorized copy of the shared mediacontent further comprises providing a user interface to preview theauthorized copy of the shared media content.
 8. A computer-implementedmethod for accessing media content shared with a social network, thecomputer-implemented method comprising performing computer-implementedoperations for: sending, from the social network to a user, a command toutilize shared media content; obtaining information identifying theshared media content and initiating a search for determining whether theuser has access to an authorized copy of the shared media content, thesearch being based upon the information identifying the shared mediacontent; providing a user interface control to utilize the shared mediacontent in response to determining that the user has access to theauthorized copy of the shared media content; and providing a userinterface control to obtain the authorized copy of the shared mediacontent in response to determining the user does not have access to theauthorized copy of the shared media content.
 9. The computer implementedmethod of claim 8, wherein obtaining the information comprisesretrieving metadata associated with the shared media content.
 10. Thecomputer implemented method of claim 8, wherein initiating the searchcomprises: generating a query for searching a data storage device; andsubmitting the query to an application to determine if the data storagedevice stores the authorized copy of the shared media content.
 11. Thecomputer implemented method of claim 8, further comprising causing amedia playback application to utilize the shared media content.
 12. Thecomputer implemented method of claim 8, further comprising causing anelectronic book reading application to display the shared media content.13. The computer implemented method of claim 8, wherein providing a userinterface control to obtain the authorized copy of the shared mediacontent further comprises: causing a user interface for purchasing theauthorized copy of the shared media content to be displayed; receiving arequest through the user interface to purchase the authorized copy ofthe shared media content; and causing an application to complete thepurchase the authorized copy of the shared media content in response toreceiving the request.
 14. The computer implemented method of claim 8,wherein providing a user interface control to obtain the authorized copyof the shared media content further comprises initiating a userinterface to preview the authorized copy of the shared media content.15. The computer implemented method of claim 10, wherein generating thequery comprises generating a query for searching a media libraryassociated with a playback application, the media library being storedat the data storage device.
 16. An optical disk, magnetic storagedevice, or solid state storage device having executable instructionsstored thereupon which, when executed by a computer, cause the computerto: receive a request from a first user of a social network to accessshared media content associated with a second user of the socialnetwork; in response to receiving the request, retrieve metadataassociated with the shared media content, and determine whether thefirst user has access to an authorized copy of the shared media content,by generating a query for searching a data storage device local to acomputer associated with the first user, the query being based upon themetadata associated with the shared media content, and submitting thequery to an application to determine if the data storage device storesthe authorized copy of the shared media content; cause one or more userinterface controls to be provided for utilizing the shared media contentin response to determining that the first user has access to theauthorized copy of the shared media content, and cause one or more userinterface controls to be provided for obtaining the authorized copy ofthe shared media content in response to determining the first user doesnot have access to the authorized copy of the shared media content. 17.The optical disk, magnetic storage device, or solid state storage deviceof claim 16, wherein providing the user interface control to obtain theauthorized copy of the shared media content comprises: causing a userinterface for purchasing the authorized copy of the shared media contentto be displayed; initiating through the user interface a purchase of theauthorized copy of the shared media content; and causing an applicationto complete the purchase the authorized copy of the shared mediacontent.
 18. The optical disk, magnetic storage device, or solid statestorage device of claim 16, wherein generating the query comprisesgenerating a query for searching a media library associated with aplayback application, the media library being stored at the data storagedevice.
 19. The optical disk, magnetic storage device, or solid statestorage device of claim 16, comprising further computer-readableinstructions which, when executed by the computer, cause the computer tocause a media playback application to utilize the shared media content.20. The optical disk, magnetic storage device, or solid state storagedevice of claim 16, wherein providing a user interface control to obtainthe authorized copy of the shared media content further comprisesgenerating a control to preview the authorized copy of the shared mediacontent.